package com.hawthorn.admin.model.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.hawthorn.component.model.BasePO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>todo 菜单管理(sys_menu) po实体类</p>
 * @author: wangchunze@expservice.com.cn
 * @created: 2022-07-11
 * @version v1.0.1
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_menu")
public class SysMenuPO extends BasePO
{
  /**
   * 编号
   */
  @TableId(value = "id", type = IdType.AUTO)
  private Long id;
  /**
   * 菜单名称
   */
  @TableField("code")
  private String code;
  /**
   * 菜单显示名称
   */
  @TableField("title")
  private String title;
  /**
   * 菜单显示英文
   */
  @TableField("title_en")
  private String titleEn;
  /**
   * 子菜单数目
   */
  @TableField("sub_count")
  private Integer subCount;
  /**
   * 父菜单ID，一级菜单为0
   */
  @TableField("parent_id")
  private Long parentId;
  /**
   * 父级菜单名称
   */
  @TableField("parent_code")
  private String parentCode;
  /**
   * 父级菜单显示名称
   */
  @TableField("parent_title")
  private String parentTitle;
  /**
   * 菜单URL,类型：1.普通页面（如用户管理， /sys/user） 2.嵌套完整外部页面，以http(s)开头的链接 3.嵌套服务器页面，使用iframe:前缀+目标URL(如SQL监控， iframe:/druid/login.html, iframe:前缀会替换成服务器地址)
   */
  @TableField("url")
  private String url;
  /**
   * 组件
   */
  @TableField("component")
  private String component;
  /**
   * 组件名
   */
  @TableField("component_name")
  private String componentName;
  /**
   * 链接地址
   */
  @TableField("path")
  private String path;
  /**
   * 授权(多个用逗号分隔，如：sys:user:add,sys:user:edit)
   */
  @TableField("perms")
  private String perms;
  /**
   * 类型   0：目录   1：菜单   2：叶子菜单
   */
  @TableField("type")
  private Integer type;
  /**
   * 菜单图标
   */
  @TableField("icon")
  private String icon;
  /**
   * 排序
   */
  @TableField("order_num")
  private Integer orderNum;
  /**
   * 是否iframe打开
   */
  @TableField("external")
  private Integer external;
  /**
   * 隐藏
   */
  @TableField("hidden")
  private Integer hidden;
  /**
   * 缓存 0:缓存 1: 不缓存
   */
  @TableField("cache")
  private Integer cache;
  /**
   * 业务类型
   */
  @TableField("biz_type")
  private Integer bizType;

  public SysMenuPO()
  {
  }
}
